/************************************************************************
 * 项目名称（软件名称）：忠旺机械物资管理系统(mms)                           *
 * 研发设计单位：忠旺机械设备制造有限公司机械设计院智能控制设计科设计与研发。   *
 * 版权所有：忠旺机械设备制造有限公司                                       *
 * 注：本项目的一切技术专利，使用规范归解释权由忠旺机械设备制造有限公司所有。   *
 * 软件版本：Ver 1.0.0                                                   *
 * 文件路径：com.zhongwang.mms.module.buy.dao                            *
 * 创建时间：2020年08月07日 18时55分                                      *
 *======================================================================*/
package com.zhongwang.mms.module.buy.dao;

import com.zhongwang.mms.gen.entity.VwDictCommon;
import com.zhongwang.mms.gen.entity.VwPdmRepResult;
import com.zhongwang.mms.module.buy.model.LockTableModel;
import com.zhongwang.mms.module.buy.model.ReceiveReportPlanModel;
import com.zhongwang.mms.module.buy.model.ShopPlanChangeReceiveModel;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
/**
 *@name: VwPdmRepResultDao
 *@description: 提报计划接收持久层
 *@author: 徐一贺
 *@coddingDate: 2020/8/7 18:55
 *@version: v1.0
**/
public interface VwPdmRepResultDao {
    /**
     *@name: receiveList
     *@description: 根据条件获取接收列表
     *@param: [queryParam]
     *@returnType: java.util.List<com.zhongwang.mms.module.buy.model.ReceiveReportPlanModel>
     *@author: 徐一贺
     *@coddingDate: 2020/8/7 18:42
     *@version: v1.0
     **/
    List<ReceiveReportPlanModel> getToBeReceivedList(ReceiveReportPlanModel queryParam);
    /**
     * @name: getReceivedList
     * @description: 获取已接收列表
     * @param: [queryParam]
     * @returnType: java.util.List<com.zhongwang.mms.module.buy.model.ReceiveReportPlanModel>
     * @author: 徐一贺
     * @coddingDate: 2025/12/2 14:20
     * @version: v1.0
     **/
    List<ReceiveReportPlanModel> getReceivedList(ReceiveReportPlanModel queryParam);
    /**
     *@name: getReceiveListByIds
     *@description: 根据ID们获取B表计划
     *@param: [ids]
     *@returnType: java.util.List<com.zhongwang.mms.module.buy.model.ReceiveReportPlanModel>
     *@author: 徐一贺
     *@coddingDate: 2020/8/7 19:37
     *@version: v1.0
    **/
    List<ReceiveReportPlanModel> getReceiveListByIds(String ids);
    /**
     *@name: lockTableBySQLServer
     *@description: 根据表名，表主键和其主键值锁定某一行数据5秒
     *@param: [lockTableModel] 锁表参数
     *@returnType: void
     *@author: 徐一贺
     *@coddingDate: 2020/8/8 7:59
     *@version: v1.0
    **/
    void lockTableBySQLServer(LockTableModel lockTableModel);

    /**
     *@name: updateSelectiveByPrimaryKey
     *@description: 根据主键选择性更新
     *@param: [changeRecModel]
     *@returnType: void
     *@author: 徐一贺
     *@coddingDate: 2020/8/8 8:13
     *@version: v1.0
    **/
    void updateSelectiveByPrimaryKey(ReceiveReportPlanModel changeRecModel);

    /**
     *@name: unLockTableBySQLServer
     *@description: 解锁表
     *@param: [lockTableModel] 解锁信息
     *@returnType: void
     *@author: 徐一贺
     *@coddingDate: 2020/8/8 8:20
     *@version: v1.0
    **/
    void unLockTableBySQLServer(LockTableModel lockTableModel);

    /**
     *@name: getFilePathByRppId
     *@description: 根据B表主键获取该数据
     *@param: [id] 主键
     *@returnType: java.lang.String
     *@author: 徐一贺
     *@coddingDate: 2020/8/15 10:28
     *@version: v1.0
    **/
    String getFilePathByRppResultId(Integer id);
    /**
     *@name: getFilePathByRppId
     *@description: 根据B表主键获取该数据
     *@param: [id] 主键
     *@returnType: java.lang.String
     *@author: 徐一贺
     *@coddingDate: 2020/8/15 10:28
     *@version: v1.0
     **/
    String getFilePathByPdmId(Integer id);

    /**
     *@name: getFilePathByPdmChangeId
     *@description: 获取变更ID的Url
     *@param: [id]
     *@returnType: java.lang.String
     *@author: 徐一贺
     *@coddingDate: 2020/8/17 13:04
     *@version: v1.0
    **/
    String getFilePathByPdmChangeId(Integer id);

    /**
     *@name: findVwDictCommonListByMat
     *@description: 获取物料类别
     *@param: []
     *@returnType: java.util.List<com.zhongwang.mms.gen.entity.VwDictCommon>
     *@author: 徐一贺
     *@coddingDate: 2020/8/26 13:44
     *@version: v1.0
     **/
    List<VwDictCommon> findVwDictCommonListByMat();
    /**
     *@name: findVwDictCommonListByMat
     *@description: 获取外协类别
     *@param: []
     *@returnType: java.util.List<com.zhongwang.mms.gen.entity.VwDictCommon>
     *@author: 徐一贺
     *@coddingDate: 2020/8/26 13:44
     *@version: v1.0
     **/
    List<VwDictCommon> findVwDictCommonListByAssistTypes();

    /**
     *@name: clearReceiveMark
     *@description: 清空接收标识信息
     *@param: [id]
     *@returnType: void
     *@author: 徐一贺
     *@coddingDate: 2020/9/3 20:49
     *@version: v1.0
    **/
    int clearReceiveMark(Integer id);

    /**
     *@name: getVwPdmRepResultById
     *@description: 根据主键获取B表实体
     *@param: [id]
     *@returnType: com.zhongwang.mms.gen.entity.VwPdmRepResult
     *@author: 徐一贺
     *@coddingDate: 2020/9/4 19:49
     *@version: v1.0
    **/
    VwPdmRepResult getVwPdmRepResultById(Integer id);
}
